package main.labtwo;

/**
 * Created with IntelliJ IDEA.
 * User: Борис
 * Date: 21.11.13
 * Time: 16:03
 * To change this template use File | Settings | File Templates.
 */
public class LabTwo {
    public static void main(String[] args){
//        double[][] A = {
//                {-1,  2, 6,10, 12, -6},
//                { 8,  1, 4, 5,-13,  7},
//                { 9,  0, 1,-6, 14,  2},
//                { 2, -4,-8, 1, 11, -2},
//                {15,-17,19,-1,  3, -3}
//        };
        double alpha = 1;
        double[][] matrix = {
                { 1,  2, -7, 3,-33},
                { 2,  4,-14, 6,-66},
                { 9,-11,  5,-8, 16},
                {-6,-19,  7,12, -9},
        };
        System.out.println("Исходная матрица системы");
        showMatrix(matrix);
        System.out.println("\nОпределитель исходной матрицы системы равен "+Determinant.determinantMatrixSizeFour(matrix));
        for(int i = 0; i<4; i++){
            System.out.println("\n===================================================================================");
            MethodsTihonov obj = new MethodsTihonov(matrix,alpha);
            System.out.println("\nНовая матрица системы при alpha = "+alpha);
            double[][] newMatrixOfSystem = obj.getNewMatrixOfSystem();
            showMatrix(newMatrixOfSystem);
            System.out.println("\nОпределитель новой матрицы системы равен "+ Determinant.determinantMatrixSizeFour(newMatrixOfSystem));
            System.out.println("\nНовый столбец свободных членов");
            showMatrix(obj.getD());
            System.out.println("\nНовая расширенная матрица системы");
            showMatrix(obj.getNewMatrixOfSystemEx());
            obj.findDecision();
            System.out.println("\nНормальное по Тихонову решение");
            showMatrix(obj.getDecision());
            System.out.println("Проверка решения");
            obj.checkDecision();
            showMatrix(obj.getB1());
            alpha /= 10;
        }
    }
    static void showMatrix(double[][] matrix){
        int strings = matrix.length;
        int columns = matrix[0].length;
        for(int i = 0; i<strings; i++){
            System.out.println();
            for(int j = 0; j<columns; j++)
                System.out.print(matrix[i][j]+"  ");
        }
    }
    static void showMatrix(double[] matrix){
        int strings = matrix.length;
        for(int i = 0; i<strings; i++){
            System.out.println(matrix[i]);
        }
    }
}
